package StudentManage;

import java.util.Queue;
import java.util.Random;
import java.util.concurrent.ArrayBlockingQueue;

/**
 * @Auther: MFM
 * @Date: 2021/7/25 - 07 - 25 - 16:44
 * @version: 1.0
 */

public class QueueDemo {
    public static void main(String[] args) {
        //创建一个容量有限的队列容器
        /*
            使用队列模拟银行取款操作：银行现存有存款1w，然后有15个人来取款。排好顺序开始取款
            每个人取款的金额在1000-3000范围内随机，当银行存款不足时，剩余的人不再取款，并发放号码
            表示明天再来排队，要求，存款不足时，从第几个人开始发放的号码，没有取款的人的号码都是哪些
         */

        Random random = new Random();
        int money = random.nextInt(2000) + 1000;

        int totalMoney = 10000;

        Queue<Integer> queue = new ArrayBlockingQueue<>(15);
        for (int i = 0; i < 15; i++) {
            queue.add(i + 1);
        }

        for (int i = 0; i < 15; i++) {
            totalMoney -= money;
            if (totalMoney < 0) {
                System.out.println("第" + i + "个人取款时存款不足。");
                System.out.println("未取款的人的号码是：");
                for (Integer num : queue) {
                    System.out.print(num+"\t");
                }

                break;
            }

            queue.remove();
        }
    }
}
